Piezoresistive sensors and sensor arrays

ABSTRACT

Highly expressive and flexibly programmable foot-operated controllers are described. Specific implementations are intended for musical applications and allow musicians an unprecedented degree of control of a wide variety of musical components and subsystems for recording and/or performance.

RELATED APPLICATION DATA

The present application is a continuation of and claims priority under35 U.S.C. 120 to U.S. patent application Ser. No. 14/173,617 forFoot-Operated Controller filed on Feb. 5, 2014, which is a continuationof and claims priority under 35 U.S.C. 120 to U.S. patent applicationSer. No. 12/904,657 for Foot-Operated Controller filed on Oct. 14, 2010,now U.S. Pat. No. 8,680,390, which claims priority under 35 U.S.C.119(e) to U.S. Provisional Patent Application No. 61/252,426 for FootOperated Controller filed Oct. 16, 2009, the entire disclosures of bothof which are incorporated herein by reference for all purposes.

BACKGROUND

The present invention relates to programmable controllers and, moreparticularly, to foot-operated controllers configured to control a widevariety of systems including, for example, musical components andsubsystems in the context of recording and performance.

Almost all foot-operated effects switches employed by musicians to datehave been large and heavy with limited displays, limited inputcapabilities, and limited control capabilities. These switches, whichtypically only have “on” and “off” states, are generally only capable ofcontrolling a single effect. As a result, a musician needs one switchfor each effect being controlled. Given the size and weight of theseconventional switches, there are obvious and serious limitations totheir effective use; particularly for musicians who travel aconsiderable amount, i.e., most musicians. This outdated technology alsoprevents artists from taking full advantage of the myriad electronic andsoftware tools now available to musicians to push the boundaries ofartistic expression.

SUMMARY

According to the present invention, highly expressive and flexiblyprogrammable controllers are provided. According to various embodiments,a controller includes a plurality of pressure-sensitive regions arrangedon a substrate. Each pressure-sensitive region has one or more sensorsassociated therewith configured to generate one or more output signalsthat are monotonically representative of time-varying pressure appliedto the one or more sensors via the associated pressure-sensitive region.A processor is configured to receive the one or more output signals fromthe one or more sensors associated with each pressure-sensitive regionand generate control information in response thereto. The controlinformation is for controlling operation of one or more processes ordevices in communication with the controller.

According to more specific embodiments, there are two or more sensorsassociated with each pressure-sensitive region, and the one or moreoutput signals generated by the two or more sensors are alsorepresentative of one or more directions of the pressure applied to thepressure-sensitive region. According to an even more specificembodiment, the one or more directions are relative to a surface of thepressure-sensitive region and include a clockwise rotation, acounter-clockwise rotation, a first linear direction along a first axis,and a second linear direction along a second axis.

According to specific embodiments, each of the sensors includes apiezo-resistive material having an electrical resistance which changeswith the pressure.

According to specific embodiments, at least some of the controlinformation includes musical instrument digital interface (MIDI)messages, and the controller further includes a MIDI interfaceconfigured to facilitate communication of the MIDI messages from theprocessor to an external MIDI device.

According to specific embodiments, the one or more processes or devicesinclude a computing device on which a software application is running,and the control information is provided to the computing device for useby the software application.

According to specific embodiments, the control information includeseither or both of musical instrument digital interface (MIDI) messagesor Ethernet messages.

According to specific embodiments, the processor is programmable to saveone or more groups of settings for each pressure-sensitive regioncorresponding to the control information for that pressure-sensitiveregion. According to still more specific embodiments, the processor isprogrammable to save groups of settings for each of thepressure-sensitive regions collectively as scenes. According to stillmore specific embodiments, the processor is programmable to save asequence of scenes as a setlist.

According to specific embodiments, the processor is programmable toconfigure sensitivity to the pressure for the one or more sensorsassociated with each pressure-sensitive region. According to morespecific embodiments, the processor is programmable to configuresensitivity to the pressure for each of one or more directions of thepressure.

According to specific embodiments, the controller includes navigationcontrols configured for selecting a functionality of each of thepressure-sensitive regions.

According to various embodiments, computer-implemented methods andcomputer-program products are provided for configuring a controllerhaving a plurality of pressure-sensitive regions configured to generateoutput signals that are monotonically representative of time-varyingpressure applied to each of the pressure-sensitive regions. The outputsignals are also representative of one or more directions of thepressure applied to each of the pressure-sensitive regions. Thecontroller also includes a processor configured to receive the outputsignals and generate control information in response thereto. Accordingto these computer-implemented methods and computer-program products, theprocessor is programmed to configure sensitivity to the pressure foreach of the one or more directions for each pressure-sensitive region.In addition, the control information corresponding to each of thepressure-sensitive regions is mapped to one or more destinationprocesses or one or more destination devices thereby facilitatingcontrol of the destination processes or destination devices by thecontroller.

According to more specific embodiments of such computer-implementedmethods and computer-program products, the processor is programmed tosave one or more groups of settings for each pressure-sensitive regioncorresponding to the control information for that pressure-sensitiveregion; to save a groups of settings for each of the pressure-sensitiveregions collectively as scenes; and to save a sequence of scenes as asetlist.

A further understanding of the nature and advantages of the presentinvention may be realized by reference to the remaining portions of thespecification and the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a top view of a foot-operated controller designed inaccordance with a specific embodiment of the invention.

FIG. 2 is a block diagram illustrating components and operation of afoot-operated controller designed in accordance with a specificembodiment of the invention.

FIG. 3 includes a cross-sectional view of a foot-operated controllerdesigned in accordance with a specific embodiment of the invention.

FIG. 4 includes a cross-sectional view of one sensor of one key of afoot-operated controller designed in accordance with a specificembodiment of the invention.

FIG. 5 is a system diagram illustrating various musical components andsub-systems connected to a foot-operated controller designed inaccordance with a specific embodiment of the invention.

FIGS. 6-12 are examples of interfaces of a software application whichmay be used to configure and control operation of a foot-operatedcontroller designed in accordance with a specific embodiment of theinvention.

DETAILED DESCRIPTION

Reference will now be made in detail to specific embodiments of theinvention including the best modes contemplated by the inventors forcarrying out the invention. Examples of these specific embodiments areillustrated in the accompanying drawings. While the invention isdescribed in conjunction with these specific embodiments, it will beunderstood that it is not intended to limit the invention to thedescribed embodiments. On the contrary, it is intended to coveralternatives, modifications, and equivalents as may be included withinthe spirit and scope of the invention as defined by the appended claims.In the following description, specific details are set forth in order toprovide a thorough understanding of the present invention. The presentinvention may be practiced without some or all of these specificdetails. In addition, well known features may not have been described indetail to avoid unnecessarily obscuring the invention.

Embodiments of the present invention relate to configurable controlsystems that are lightweight, durable, and flexibly programmable for usein a wide variety of applications. A particular class of embodiments areimplemented as foot-operated controllers. Still more specifically,embodiments will be described herein with reference to particularapplications of such foot-operated controllers that are intended for useby musicians to control a wide variety of components and processesduring recording and performance. However, it should be noted that thescope of the invention should not be limited by reference to suchapplications. To the contrary, embodiments of the present invention maybe used in a wide variety of contexts to facilitate control of a widerange of processes, devices, and systems.

A class of embodiments of the invention will now be described using thename SoftStep™ or SoftStep™ controller to refer to the foot-operatedcontrollers. The SoftStep™ (a top view of which is shown in FIG. 1) is alightweight, compact, and highly expressive foot-operated controller.The depicted implementation 100 of the SoftStep™ has a USB port 102 bywhich the SoftStep™ may be connected to an external computer, andthrough which power may be delivered to the SoftStep™. An expressionport 104 is provided for plugging in a volume or expression pedal. Thereis also an expansion port 106 for a musical instrument digital interface(MIDI) expander (described below) that enables use of the SoftStep™without a computer to control, for example, a MIDI synthesizer and/orrack. According to some implementations, power can also be suppliedthrough the expansion port. The SoftStep™ is provided with backlightingso that its controls can be seen well in low lighting situations, e.g.,on stage. There is a 4-character alphanumeric display 108 that is userprogrammable. There are also LEDs 110 for each key 112 that can beprogrammed to display the user's choice of data. The depictedimplementation of the SoftStep™ is rubberized and has a carbon-fiberback to give it strength and stability, although a wide variety of othermaterials are contemplated for various implementations.

FIG. 2 is block diagram of a portion of a SoftStep™ implementedaccording to a specific embodiment of the invention. According to thedepicted embodiment, four pressure sensors 202 (e.g., piezo-resistivepads) are located underneath and in the corners of each numbered buttonor key 204 and provide a continuous range of input instead of just an“on” or “off” state. It will be understood that any of a variety ofpressure sensors and pressure sensitive materials may be employed toimplement sensors 202. It will also be understood that a fewer orgreater number of sensors may be employed to achieve some or all of thefunctionalities enabled by the configuration shown. For example,embodiments are contemplated in which three sensors are configured in atriangular arrangement. Embodiments using two sensors for each key pad,while likely to provide a lesser level of control, are alsocontemplated.

A processor 206 (Silicon Laboratories 8051F344) converts the sensoroutputs to control commands for corresponding effects. It will beunderstood that processor 206 may be implemented using any of a widevariety of suitable devices known to those of skill in the art. Theoperation of particular implementations of the code that governs theoperation of processor 206 may be understood with reference to thevarious embodiments described herein. Such code may be stored inphysical memory or any suitable storage medium associated with theprocessor, as software or firmware, as understood by those of skill inthe art. However, it should be noted that the use of a processor orsimilar device is not necessary to implement all aspects of theinvention. That is, at least some of the functionality described hereinmay be implemented using alternative technologies without departing fromthe scope of the invention. For example, embodiments are contemplatedwhich implement such functionalities using programmable or applicationspecific logic devices, e.g., PLDs, FPGAs, ASICs, etc. Alternatively,analog circuits and components may be employed for some functionalities.These and other variations, as well as various combinations thereof, arewithin the knowledge of those of skill in the art, and are thereforewithin the scope of the present invention.

According to some embodiments the multiple sensors (e.g., one in eachcorner of a particular button) enable the detection of motion, i.e.,captured in the time-dependent pressure exerted on the differentsensors. This allows, for example, the user to roll his foot clockwiseor counter-clockwise to effect changes such as, for example, turning thevolume or emphasis up or down for a particular channel or effect. Othermotions, e.g., rocking back and forth or side to side, might also becaptured by various sensor configurations contemplated by the presentinvention.

In the embodiments depicted in FIGS. 1 and 2, the four cornerpiezo-resistive pads in each key are referred to as North West (NW),South West (SW), North East (NE), and South East (SE). As shown in FIG.2, each key is responsive to 5 degrees of control: in the X-axis andY-axis, clockwise (CW) rotation, counter-clockwise (CCW) rotation, andpressure (Z-axis). Four piezo-resistive pads (not shown) in thediamond-shaped navigation pad (Nay Pad) 114 are referred to as North(N), South (S), East (E), and West (W). Each of the piezo-resistive padsin the SoftStep™ sends 7-12 bit data to the processor from which thesources are derived. As will be discussed in greater detail below, thesecontrol sources are mappable to any MIDI destination or Ethernetdestination (e.g., open sound control (OSC)). Table 1 summarizes sourcederivation according to a particular embodiment of the invention.

TABLE 1 Sources Derivation Pressure Averages the total pressure of thepiezos per key. Live (NW + SW + NE + SE)/4 = Pressure Live. A variationfor seated use would take the largest of the 4 values = Pressure Live. XLive, Y Plots the relative location of pressure in the Cartesian plane.Live When no pressure is applied to the key, coordinates are Polar (64,64). If all pressure is applied to NW piezo, coordinates (circular) are(0, 127), NE (127, 127), SW (0, 0), SE (127, 0). (SW − NW) = x, (SE −NE) = y; Convert from Cartesian coordinates to polar where x is the realinput and y is the imaginary. Add 0.785398 to phase, and convert back topolar coordinates, with additional scaling. Pressure Same as liveparameters above, except when the user removes Latch, X foot from key,the value remains. All live values are, in Latch, Y addition, delayed insoftware to make latching possible. Latch X If pressure is weightednegatively or positively along the X- Increment axis, add/subtract tothe current value in proportion to the weight's magnitude. Y Same as XIncrement but measured along the Y-axis. Increment Rotation Assign atarget value to each piezo. When the pressure on one piezo exceeds theothers, slew from the current value to the value assigned to thatparticular piezo. Rotation Same as Rotation above except that when theuser initially Rel. applies significant pressure to a key, rotationvalue initializes to 63, and one navigates to a new value from thisstarting point. Foot On If the total pressure (derived from pressurelive) exceeds a designated threshold, then Foot On goes true. Foot OffIf the total pressured falls below a designated threshold, the Foot Offgoes true. Wait If a Foot On is detected, and remains true for aspecified Trig duration, Wait Trig outputs the total pressure applied tothat key at the moment that duration has elapsed. After the pressurevalue is ouput, Wait Trig returns to zero after another specifiedduration. Fast Same as Wait Trig, with minimal delay. Trig Dbl Same asWait Trig, except Dbl Trig must detect a Foot On, Trig and Foot Off, andan additional Foot On (two Foot On events) in a designated amount oftime. Like a double click on a mouse. Long Same as Wait Trig, with alonger duration. Trig Off Same as Foot Off, except that after aspecified duration after Trig a Foot Off event, Off Trig returns to avalue of 0. Delta If the change in pressure exceeds a user-defined valuein the Trig positive direction within a given amount of time, output thetotal pressure at the moment the change in pressure occurred. Thisallows multiple triggers without requiring the pressure to fall belowthe Foot Off threshold. Wait Same as Trig sources above, except that theoutput values do Trig not return to zero. Latch, Fast Trig Latch, DblTrig Latch, Long Trig Latch Nav Y If the pressure exceeds a user-definedvalue on the North quadrant of the Nav Pad, then increase the currentvalue of the Nav Y source by one. If the pressure exceeds a user-defined value on the South quadrant of the Nav Pad, then decrease thevalue of the Nav Y source by one. The source's value cannot be increasedor decreased by more than one until the pressure of the activatedquadrant has fallen below the defined pressure threshold value. NavMultiplies the Nav Y source by 10, and adds the value of the Y × 10 keynumber to it. If Nav Y = 10, and key 1 is hit, Nav Y × 10 & Key & Keyoutputs 11. Key If total pressure of a key exceeds the user-definedpressure Value threshold (i.e. Foot On), then output the value of thekey pressed (0-9). Prev When a new Key Value is received, Prev Key Valueoutputs Key the previous value. If the user presses key 4, and thenpresses Value key 7, Prev Key Value outputs a value of 4. This Same asKey Value, except outputs the value of the key Key pressed, only if itis equal to the value of the key in which the Value source is selected.Key # Same principle as Key Value. If Key 3 Pressed is selected, Pressedand the pressure exceeds the threshold of key three, Key 3 Pressedoutputs a 1. If any key other than 3 are pressed, Key 3 Pressed outputs0.

For some implementations, keys may be near each other as this isdesirable to make a smaller device. In order to prevent accidental keyoperations from a large foot or shoe, several isolation functions may beemployed. According to one embodiment, such an isolation functionoperates by shutting off data input from keys that are not pressed. Forexample, if the pressure threshold is exceeded on key 1, then all datafrom other keys' piezo-resistive pads are deactivated until key 1 isrelinquished. Another more advanced approach operates by shutting offdata from keys adjacent to the initial desired key after it is pressed.This allows two keys to operate—one per foot—without unintended keyactivity.

The multiple sensor arrangements for each key may also be useful fordetermining which of the closely-spaced keys was selected. For example,if the NW and SW sensors for key 7, the NE and SE sensors for key 9, andthe NW and NE sensors for key 3 were activated in conjunction with mostor all of the sensors for key 8, then processor could determine that theuser intended to select key 8.

FIG. 3 shows a cross-section of a SoftStep™ 300 implemented according toa specific embodiment of the invention. In order to get enough stiffnessalong the longitudinal axis of the SoftStep™, a laminate of fiberglass(e.g., circuit board 302), a spacer (e.g., plastic shim 304) and carboncomposite 306 is employed to act like a box beam. Stiffness isadvantageous for keeping the sensors aligned and preventing theelectronic components from failing.

FIG. 4 is a cross-sectional view of a piezo-resistive sensor 402 underone corner of a key pad 404 for a foot-operated controller implementedaccording to a particular embodiment of the invention. Piezo-resistivematerial 406 is glued to a plunger 408 at ½ of of the piezo's thicknessand held just off a pair of traces on a printed circuit board (PCB) 302.When pressure is exerted on key pad 404, plunger 408 moves relative tothe reliefs surrounding it. A monotonic representation of the pressurebeing exerted on the sensor is then generated as a voltage as theresistance of the piezo-resistive material in contact with the circuittraces changes correspondingly. This same geometry may be used for allpiezo-resistive sensors in the SoftStep™.

Illumination of the keys and navigation pad (e.g., luminous panel 308)may be effected in a number of ways. For example, arrays of LEDs mightbe employed. Alternatively, given that it may be difficult in someapplications to illuminate a relatively broad area with an LED, as wellas the potential for hot spots, embodiments are contemplated that employelectro-luminescent resources (e.g., patterned sheets, tubes, etc.) toselectively illuminate portions of the SoftStep™ display area. Stillother alternatives might employ phosphorescent materials. In cases whereactive sources of illumination are employed, the intensity of theillumination may also be modulated to correspond to various inputs,e.g., pressure from the user's foot, musical inputs (e.g., throbbing tothe beat), etc. The light intensity may also be automatically dimmedwhen the pad is not in use.

FIG. 5 is a diagram illustrating various musical components andsub-systems connected to a SoftStep™ 500 designed for use in musicalapplications. The SoftStep™ may be used in conjunction with software ona connected computer 502 (e.g., via USB) to control effects, looping,sample triggering, etc., using effects processors, MIDI devices andsystems, OSC devices and systems, etc. The SoftStep™ may be used withdigital audio workstations (DAWs) to control punch-in, panning, levels,and transport functions (e.g., 504). According to some embodiments, theSoftStep™ may be used in standalone mode, i.e., without an externalcomputer, to control a MIDI synthesizer 506 and/or a MIDI rack 508 witha separate MIDI Expander 510 connected via a USB expansion port. Anexpression pedal 512 may be connected to the SoftStep™ via an analogexpression port. A musical instrument 514 may be connected to an effectsprocessor (e.g., in MIDI rack 508) via an instrument cable (for usewithout computer), or connected to an audio interface that is connectedto the computer (for use with computer). In addition to myriad ways ofcontrolling sound, the SoftStep™ can be used with anything else thatwill accept MIDI or OSC data, e.g., lighting effects or video (516),robotics, pyrotechnics, and more.

MIDI expander 510 is an optional device that enables use of theSoftStep™ to control MIDI devices and systems without an externalcomputer. Once the SoftStep™ is configured with control mapping softwareas described below, any MIDI device may be connected to and controlledby the SoftStep using the MIDI expander. The MIDI expander contains adriver and optical isolator as per MIDI requirements to buffer the RXand TX signals coming from the SoftStep's CPU UART. The MIDI expanderconnects to the SoftStep using a USB A-to-MIDI USB 4-pin cable. The MIDIexpander is connected to power by using a USB A-to-USB B cable and a USBpower plug. Other expanders, such as an analog control voltage outputgroup or a bank of relay closures for hardware effects switching can bedaisy-chained on the expander bus for greater flexibility. Through theuse of such expanders, control data can be simultaneously available todifferent targets through different hardware standards, e.g., MIDI,Control Voltage DACs, relays, etc.

According to various embodiments of the invention, the SoftStep™ isemployed with a software application (the SoftStep™ application) on aUSB connected computer (e.g., computer 502) to enable the creation ofpowerful control parameters. The SoftStep™ application may beimplemented using any of a wide variety of software and programmingtools and may employ any of a wide variety of connection types,communication protocols, and messaging formats. The computing platformon which the SoftStep™ application operates uses memory to store data,algorithms, and program instructions configured to enable various of thefunctionalities related to the present invention. Such data, algorithms,and program instructions can be obtained from any of a variety ofcomputer-readable storage media examples of which include magnetic andoptical media as well as solid state memory and flash memory devices.

The SoftStep™ application works with the SoftStep™ foot-operatedcontroller to manipulate sensor data that gives the user a nearlyinfinite degree of control and possibility. As discussed above, theSoftStep™ has 10 key pads, each with multiple sensors, enabling 5degrees of freedom that are unique to each key. As shown in FIG. 2 onthe enlarged representation of key pad “8,” these parameters includeX-axis, Y-axis, clockwise (CW) rotation, counter-clockwise (CCW)rotation, and pressure (Z-axis). These sources can be mapped todestinations up to six times for each key providing the possibility of adense data source from a single motion of the foot. It should be notedthat, while operation of the SoftStep™ application is described hereinwith reference to a particular implementation of the SoftStep™controller, the functionalities of the SoftStep™ application are notlimited to the controller design described. That is, the variousfunctionalities of the SoftStep™ application may be employed tointerface with and configure virtually any controller intended forsimilar applications.

The main window for a particular implementation of the SoftStep™application is shown in FIG. 6. The controls for the numbered key padsand the Nay Pad are arranged in a manner similar to the correspondingcontrols on the SoftStep™ itself. Each key and the Nay Pad has acorresponding modulation window (discussed below) in which the sourcesvisible from the sensor view (discussed below) can be mapped to variousdestinations of the user's choice using modlines. These include MIDI,tape recorder style Transport Control destinations, or Ethernet. As willbe discussed, each modulation window includes 6 modlines which meansthat each of the 10 SoftStep™ keys can be configured to control 6different MIDI messages. After the modlines are set up, this informationmay be saved into presets for each key. The presets may then be savedinto “scenes” from the main window. Additionally, the user can move fromscene to scene in whatever order he chooses by using a setlist.

The x-axis of the diamond-shaped Nay Pad is configured to scroll throughthe scenes in a setlist. Each time the user navigates back to any scenein the current setlist, the last state of that scene will be rememberedso the user can pick right back up where he left off. For example,assume that for one scene all of the program change messages have beenset up. Once these edits are complete, the user navigates to a differentscene, e.g., one that is set up to control a looper. After turning onsome loops, the user then navigates back to the program change scene,for which the last program change message sent out will be recalled.Then, when the user navigates back to the looper, the LED indicatorsrepresenting the loops turned on the last time the user was in thatscene will be recalled. Then, by tapping either up or down on the NayPad, the last data sent from that scene will be displayed in the alphanumeric display until another key is pressed.

The SoftStep™ application also provides the user with the ability toalter the sensitivity settings for the numbered keys and the Nav Pad.Accessible from the main window, the settings window also enables theuser to set up a MIDI input device for use with the MIDI expander, andto calibrate an expression or volume pedal for use with the SoftStep™expression port. MIDI input can then be used as sources in the PresetModulation window, also accessible from the Main window. The user canuse Preset Modulation to allow other MIDI controllers to change scenesor presets for the keys or Nay Pad.

Referring once again to FIG. 6, the main window of the SoftStep™application includes 10 blocks that correspond to the 10 numbered keyson the SoftStep™ controller. Each numbered block provides access topresets for the corresponding key. These presets can be edited byselecting the modulation box within each key block. In addition, whenthe user steps on a key pad on the SoftStep™ controller, a bluebackground appears around the corresponding key block in the main windowof the SoftStep™ application. To the right of the key blocks are fourdark grey boxes that mirror what is displayed on the LED display on theSoftStep™ controller. Under these is the control block for the Nay Padwhich allows the user to control the settings for the diamond-shapednavigation pad on the right side of the SoftStep™ controller.

The top left corner of the main window of the SoftStep™ applicationincludes the scenes control block which allows the user to save andrecall presets that belong to particular scenes. Each scene mayencompass 10 presets of the 10 keys, a preset modulation, and thepresets for the Nay Pad. Below the scenes control block is the setlistcontrol block which allows the user to specify an order for a group ofscenes that is useful, for example, for a performance. That is, theorder in which scenes are created and saved during programming of theSoftStep™ might not be the order the user wants for a given performance.The use of setlists allows the user to save and navigate through thescenes in any order.

The scene abbreviation allows the user to set what the SoftStep™ displayreads when a scene is first selected. The preset modulation controlallows use of the MIDI input sources to control presets. For example,the user might set up a MIDI input that can be used to change the presetto which key 1 is set.

To the right of the preset modulation control is the settings control,selection of which opens the settings window and allows selection ofpresets that determine how the application will scale and accept datafrom the SoftStep™ controller. The settings window also allows the userto set up an Ethernet OSC port and declare MIDI channels. Above thesecontrols is the sensor view button. When selected, a user interface ispresented that shows how the SoftStep™ controller is sensing data.

As discussed above, at the top of the main window is the control blockthat enables the user to save scenes. Also each key block provides thecontrols that enable the user to save presets for the correspondingkeys. The manner in which each facilitates saving presets or scenes issubstantially the same. To save a scene or preset, the user selects the“Save” button in the corresponding control block and enters the name ofthe scene or preset in the box presented (not shown). Multiple presetsmay be saved for each. And once saved, each preset may be readilyrecalled using the increment/decrement control in either the key'smodulation window or from the SoftStep™ application main window. Inaddition, when scenes or presets are saved in with the SoftStep™application this information is stored in a folder and may be retrievedif lost or if the user upgrades to a newer version of the software.

According to some embodiments, the SoftStep™ application enables theuser to program the presets for the keys to recall initial states thefirst time a scene is recalled at the beginning of a session, e.g., whenthe SoftStep™ application is started and/or the SoftStep™ controller isturned on. After a scene is recalled for the first time in a session,the user's interaction with the SoftStep™ will then change the states ofthe keys. As discussed above, if the user navigates to a different sceneand then returns, the last state of that scene will be recalled ratherthan initial states.

Selection of the “Open” button in the setlist control box in the mainwindow of the SoftStep™ application results in presentation of thesetlist window for that setlist as shown in FIG. 7 which includes anarray of text fields and number boxes. The circle buttons in front ofeach line are used to turn on or off a scene appearing in the textfield. The user may select the scene in the text field by scrollingthrough the numbers or pressing the increment/decrement arrow controlson the right hand side. The order of scenes listed in the setlist is theorder of scenes as they will be recalled using the x-axis of the NayPad.

The portion of the settings window shown in FIG. 8 (accessed via thesetting control block in the SoftStep™ application main window) allowsthe user to edit sensitivity parameters for each key. The keys settingsshown in Table 2 and the Nay Pad settings shown in Table 3 may bemanipulated via this portion of the settings window.

TABLE 2 Key setting Description Rotation slew rotation plots thelocation of your foot on the key around a dial that goes from 0-127which is then available as a source for data mapping. The rotation slewsetting allows you to add slew while scrolling through the dial values,allowing you to slow down the rotation. Dead X this parameter designatesthe width of the horizontal dead zone, which indicates how much moreweight to one side you need to be pushing down with in order to beginincrementing or decrementing. Accel X this is how fast the inc/dec forthe horizontal plane moves. The higher the value, the faster you'll movefrom one side to the other. Dead Y designates the width of the verticaldead zone, which indicates how much more weight to the top or bottom youneed to be pushing down with to begin incrementing or decrementing.Accel Y this is how fast the inc/dec for the vertical plane moves. Onthresh here you can set the sensitivity for the “foot on” threshold. Forexample, if set to 7 you would have to put enough pressure on the keyfor it to register a value of 7 before the “foot on” trigger is sent.Off thresh here you can set the sensitivity for the “foot off”threshold. For example, if set to to 7, the pressure value would have tobe 7 or lower for the “foot off” trigger to register. You would wantthis to be lower than the “on” sensitivity. Delta If there is a positivechange in pressure greater than the delta value it sends the deltatrigger value that you can use as a modulation source Global gainamplifies all incoming data from each key. Adjust this first beforeadjusting other settings. This scales all of the sensor data from theSoftStep ™ keys and can make the SoftStep ™ more or less responsive topressure. If you are 2 meters tall and 110 KG you would need less globalgain than if you weighed half that. Multiple key turn this on to be ableto use two keys at a time - one mode enable per foot. The SoftStep ™automatically determines the key you mean to press and disallowsadjacent keys from accidentally firing. Normal setting (off) allows justone key at a time to be active.

TABLE 3 Nav Pad Setting Description Dead X/Y select the “dead zone” forthe X and Y axis of the Nav Pad On thresh just like for the regular keysyou can set the N, S, E, W sensitivity for the “foot on” threshold forthe Nav Pad. If set to 7 you would have to put enough pressure on thekey for it to register a value of 7 before the “foot on” trigger issent. Off thresh just like for the regular keys you can set the N, S, E,W sensitivity for the “foot off” threshold. For example, if set to 7,the pressure value would have to be 7 or lower for the “foot off”trigger to register. You would want this to be lower than the “on”sensitivity.

The portion of the settings window shown in FIG. 9 (accessed via thesetting control block in the SoftStep™ application main window) allowsthe user to set up a MIDI Input device, an OSC port, and calibrate anexpression pedal. The settings shown in Table 4 may be manipulated viathis portion of the settings window.

TABLE 4 Control Description MIDI enable turn on or off lines thatreceive MIDI Input data MIDI device set where the MIDI Input data iscoming from MIDI channel set which channel the MIDI Input data is comingfrom MIDI parameter choose between note, controller, or program changefor what type of data is coming in # if you chose note or controller foryour parameter then you can choose which control number or note valuethe data is for MIDI value shows the data coming in from the MIDI Inputdevice OSC IP select the IP address for where the OSC is being sent toOSC port select which port the OSC output is going to

If an expression pedal is plugged into the expression port of theSoftStep™ controller, the Pedal Calibration button shown in FIG. 9 willfacilitate calibration. Selection of the Pedal Calibration opens awindow which provides step-by-step calibration instructions. Thisinterface may also be used to calibrate a volume pedal where the plug isin the Instrument Output jack of the volume pedal.

The sensor view window shown in FIG. 10 provides visual representationsof the sensor data coming from the SoftStep™. Each key window displays anumber of parameters for the corresponding SoftStep™ key. The rotationdial plots where the user's foot is on the corresponding SoftStep™ keyaround a dial that the user can rotate. For example, if the user's footis in the bottom left corner of the key the rotation dial will be turnedall the way down. The user can then turn it all the way up by rotatinghis foot around the key to the bottom right corner.

The xy latch display shows the x- and y-axis position of the user's footon the key. The “latch” indicates that when the user releases the key,this value will stay where he left it. The pressure latch display showsthe pressure of the user's foot on the key and will also stay where theuser leaves it. The inc/dec display shows the user's foot incrementingand decrementing through the horizontal and vertical planes of the key.Stepping a few times on one side of the key results in the valueincrementing or decrementing by different amounts according to thepressure. The user can also hold pressure onto one side and it willincrement or decrement smoothly toward one side. These values will showup in the modlines as “horizontal” and “vertical.” The dead zone andrate of change for this display may be set in the settings window.

The live display gives real-time readings of non-latching parameters,i.e., pressure, x, and y. The foot on/foot off display shows whether ornot the key is active or has been active. For example, notice in FIG. 10that some of the keys don't have the “foot on” or “foot off” indicatorsilluminated (i.e., keys 7-0). This indicates that these are the keysthat have not yet been touched during this session, which also explainswhy all of these keys show their initial states for every parameter.Also notice in FIG. 10 that some of the keys have at one time beenactivated but are not currently activated (keys 1-5). The “foot off”indicators for these keys are on and all of the latch indications andthe inc/dec and dial indicators show their last state. The only thingthat doesn't latch is the live indicator. Key 6 is shown to be in use,i.e., it is highlighted in blue, the “foot on” indicator is lit, andsensor data are shown in the live display.

Referring once again to FIG. 6, some of the functions associated witheach key block in the main window of the SoftStep™ application will nowbe discussed. Selection of the “save” button in a key block saves apreset for the corresponding key. Presets may also be saved from withinthe key's modulation window. Selection of the “copy” button allows theuser to copy settings from one key to another. Selecting the copy buttonin one key block changes the copy buttons in all other keys block into“paste” buttons. The settings from the first key may then be copied intoany of the other keys by selecting the corresponding paste button.Selecting the copy button in the first key block again returns thebutton to read “copy.” The circle to the right of the copy buttonmirrors the programmable LED status on the SoftStep™ controller.

Selecting the “modulation” box in a key block brings up the modulationwindow for that individual key (as shown in FIG. 11) allowing the userto edit the parameters in the displayed preset. Clicking on the littlearrows next to the preset number will scroll up and down through thepresets saved for that modulation window.

The modulation window shown in FIG. 11 includes an array of “modlines”that can be configured for each key. In the embodiment shown, there aresix modlines that can assign six parameters of the correspondingSoftStep™ key to output different types of messages. According to thedepicted embodiment, each modline has the options shown in Table 5.

TABLE 5 Modline Option Description On/off click on the circle to enablethe modulation line and it will show a blue-green color. When disabled,the modline on/off appears dark Init the initial value. Adjust theinitial value to preview what that value does to the rest of themodline. This is also the starting value in the absence of any raw datafrom the source Sources Choose what data source will control theindividual modline. Click on the box and many parameters will pop up ina scroll menu. For a representative list of sources see Table 6 Raw Thevalue coming directly from the source is displayed here Gain this is thefirst place where you can use math to modify the signal. Whatever numberis put in the gain box is used to multiply the raw value. For example ifthe source is X live, clicking on the gain window and typing “2” willdouble whatever value received from the controller Offset set a value toadd or subtract from the raw value after it has been multiplied by thegain value Result the resulting value of the source modified by gain andoffset Table the result value is entered into the selected lookup table,and used to plot the index on a chart. There are a number of tableoptions, each which will affect the modulation differently as it changesvalue over time. There is also a toggle option Min/max The “min” and“max” in the output segment allow you to set where the index starts andends. If the min is set to 10 and the max is set to 15, then the indexwill only count between 10 and 15 Slew Use slew to smooth out the indexwhen it jumps from one number to another. The larger the slew, theslower the result will respond to the source Parameter Click on thedrop-down menu to see the many options destination available: Note, CC,Bank, Program, OSC (Open Sound Control), Pitch Bend, MMC (MIDI MachineControl), Aftertouch, or Poly Aftertouch. These options are furthercustomizable by selecting the device/route, the note, velocity orcontrol change, or the channel # you wish to send these parameters out

At least some of the SoftStep™ sources available in every key's modlineare shown in Table 6.

TABLE 6 SoftStep ™ Sources Description Pressure Live Similar to PressureLatch described above, but instead the value resets back to 0 when keyis depressed. X Live Similar to X Latch described above, but instead thevalue resets back to 64 (centroid value between 0 and 127) when key isdepressed. Y Live Similar to Y Latch described above, but instead thevalue resets back to 64 (centroid value between 0 and 127) when key isdepressed. Pressure Latch This value corresponds to the overall pressuresensed by the key (a higher value indicates more pressure applied). Theterm “latch” indicates that after the foot is taken off, the lastrecorded value still remains and will not be reset back to 0 (unlikePressure Live). X Latch This value corresponds to the overall pressurein the X or horizontal direction of the key. Applying more pressure tothe right side of the key increases the value, while pressure to theleft decreases. The term “latch” indicates that after the foot is takenoff, the last recorded value still remains and will not be reset back to0 (unlike X Live). Y Latch This value corresponds to the overallpressure in the Y or vertical direction of the key. Applying morepressure to the top of the pad increases the value, while pressure tothe bottom decreases. The term “latch” indicates that after the foot istaken off, the last recorded value still remains and will not be resetback to 0 (unlike Y Live). X Increment This value corresponds tohorizontal value in an increment/decrement style. Step a few times onthe right side of the key and see the value increment by differentamounts corresponding to the pressure, also try stepping a few times onthe left and see the value decrement. You can also hold pressure ontoone side and it will inc or dec smoothly towards one side. Y IncrementThis value corresponds to vertical value in an increment/decrementstyle. Step a few times on the top of the key and see the valueincrement by different amounts corresponding to the pressure, also trystepping a few times toward the bottom and seeing the value decrement.You can also hold pressure at the top or bottom and it will inc or decsmoothly towards the top or bottom. Rotation With your foot pushing downon the SoftStep ™ controller, roll the tips of your toe in a clockwiseor counter clockwise oriented movement and watch the values change. RotRelative no matter where you put your foot initially you'll get anoutput of 63 (the center of the dial) and then if you rotate your footclockwise from that the value will go up. If you rotate your footcounter- clockwise from that the value will go down. Foot On This valuecorresponds to whether or not the key is pressed or not. 1 indicates thefoot is on (true) 0 indicates foot off (false). Foot Off Opposite logicto Foot On. 1 indicates foot off (true), 0 indicates foot on (false).Wait Trig Short for trigger, the value is received only after a fewseconds of your foot being pressed on the key. Fast Trig causes atrigger after the foot comes off the key in a short period of time(quick tap). Dbl Trig Short for trigger double, the value is receivedonly when the pedal senses two quick impulsive steps onto the key. LongTrig This value corresponds to a trigger (a quick and impulsive step)without immediately taking off the foot, while instead holding it for alonger period of time. Off Trig causes a 0 to trigger when your footcomes off the key in a short period of time (quick tap). The rest of thetime it outputs a 1. Delta Trig measures change in pressure. If pressuregreater than the delta setting in the settings window occurs, thenyou'll get a trigger. Wait Trig Latch Same as Wait Trig but the valuedoesn't go back to 0 after the trigger Fast Trig Latch Same as Fast Trigbut the value doesn't go back to 0 after the trigger Dbl Trig Latch Sameas Dbl Trig but the value doesn't go back to 0 after the trigger LongTrig Latch Same as Long Trig but the value doesn't go back to 0 afterthe trigger Pedal This value is received when a pedal is connected tothe SoftStep ™ controller's expression port, next to the USB port. NavPad Y This value corresponds to top and bottom pads of diamond shapedNav Pad on the SoftStep ™ controller. Think of this as a counter, whereeverytime the top pad is pressed the value one is added to the counter,and when the bottom of the Nav Pad is pressed the value one issubtracted from the counter. Nav Pad Y and Key Use this setting to reachlarger numbers much quicker than Nav Pad Y. Stepping on the top padincrements the tens digit of the value, similarly the bottom paddecrements the tens digit. The final value is achieved after stepping onone of the 10 pads indicating the ones digit. For example, step on thetop pad 14 times to increment the counter to 14, then hit the number 2key, and the final value will be 142. Key Value This value correspondsto which of the 10 keys is stepped on. Stepping on key 7 gives the rawvalue of 7, stepping on key 2 gives the value of 2. Prev Key Value Thissetting remembers the order in which pads you pressed down on andoutputs the last key, not the current. If you step on key 2 then key 8,the value output would be 2. This Key Value This source will outputwhatever key value you are on whenever you step on it. For example, if Iam in the key 7 modulation window and I choose This Key Value as asource, stepping on all other key won't trigger any value except whenstep on key 7, and the value “7” will appear. Key 1 . . . 10 This sourcelooks for the status of whatever key Pressed you choose. 1 is true ifthe corresponding key is pressed, it doesn't matter which key you areediting. For example, if I choose the Source Key 4 pressed in a modlinebelonging to key 7, the value will only change and become 1 when I stepon pad 4 (otherwise it stays 0). Mod 1 . . . 6 Output This setting takesthe output value from any of the other modlines as the raw value of itsown. MIDI A . . . H These receive the values from the lettered MIDIInput in the settings window

On the right side of the modulation window of FIG. 11 are controls forsetting display information for the LED lights associated with theSoftStep™ key pads and the four-letter alpha-numeric display screen. Thetop row contains the settings for the alpha-numeric display screen.Setting the display mode is important for getting the desired behavior.There are 5 display modes for a particular implementation as shown inTable 7.

TABLE 7 Display Mode Description None causes the four-letter display boxto go blank when using that key Always displays the key name wheneverthe corresponding key is the most recently activated key Once displaysthe key name once at the moment it is activated and will then show theprefix and parameter value Initial/Return displays the key name when thekey is selected but not active, and will display the prefix andparameter value when in use. This mode works well for continuouslychanging sources, but not for toggles. When the display is showing asource value and the slew causes the output to persist after the foot isoff the key, the display will no longer be updated, even though theparameter is still being altered Immed Param displays the prefix andparameter value when that key is the currently activated key. The keyname does not show up in this mode

The green and red LED modes for controlling operation of the LEDassociated with each the SoftStep™ keys are also very useful. Each keycan be configured to show a red light or a green light in certaincircumstances. There are several different modes for each light as shownin Table 8.

TABLE 8 LED Mode Description None the light will not come on in thismode True the light will come on when the output of the key is above 0False the light will come on when the output of the key is 0 Flash Truethe light will flash repeatedly when the output of the key is above 0Flash False the light will flash repeatedly when the output of the keyis 0 Flash Fast True the light will flash quickly when the output of thekey is above 0 Flash Fast False the light will flash quickly when theoutput of the key is 0 Blink True the light will blink once when theoutput of the key goes above 0 Blink False the light will blink oncewhen the output of the key goes to 0

If there are multiple modlines for one key, different modes may beconfigured for the LED lights with each modline, but only one can be theactive modline for the LED display. That is the purpose of the littleunlabeled button next to the display mode drop-down menus. Whichevermodline has the button next to the LED mode selectors illuminated is theone that will send data to the SoftStep™ controller for LED displayinformation. The reminder field next to that is provided so the user canmake a note about the modline he created, e.g., to remind the user aboutthe purpose of the modline.

Referring again to FIG. 6, selection of the modulation box in the NayPad control block in the main window of the SoftStep™ application bringsup the modulation window for the Nay Pad (as shown in FIG. 12) allowingthe user to edit the parameters in the displayed preset. As shown, theNay Pad modulation window is similar to the modulation windows for eachof the 10 SoftStep™ keys. The modline functions are similar to thosediscussed above with reference to Table 5. One key difference is theportion of the interface in the upper right hand corner labeled“Counters.” This indicates that the Nay Pad value will wrap around themin and max value set to the left. For example, if the min value for aparameter is set to 5 and the max is set to 120, stepping on the padagain when the value is 120 will set it back to 5. The counter can bereset for each axis by clicking on the little circling arrow.

The Nay Pad modulation window also includes a flash button for thealpha-numeric display. Activation of this control causes the display boxto flash. This may be useful, for example, in the “ProgramChange” mainpreset of the SoftStep™ in which the Nay Pad display is set to flash toindicate that data have not yet been sent out.

While the invention has been particularly shown and described withreference to specific embodiments thereof, it will be understood bythose skilled in the art that changes in the form and details of thedisclosed embodiments may be made without departing from the spirit orscope of the invention. For example, although embodiments have beendescribed herein that relate to musical performance and recording, otherapplications of the multi axes controllers enabled by the presentinvention are contemplated. Such applications include, for example,editing video, controlling layered functions in graphics and computeraided design (CAD) programs and emulating other computer controllers.For example, the SoftStep can output data formatted similarly to aWaccom type “dig pad” or writing surface. The dig pad can detect theangle and pressure of the pen as well as its x-y location. Dataappearing in this format would be easily mapped to graphics and CADprograms allowing more rapid data manipulation.

In addition, although various advantages, aspects, and objects of thepresent invention have been discussed herein with reference to variousembodiments, it will be understood that the scope of the inventionshould not be limited by reference to such advantages, aspects, andobjects. Rather, the scope of the invention should be determined withreference to the appended claims.

What is claimed is:
 1. A sensor array, comprising: piezoresistivefabric; a plurality of sets of traces adjacent a same side of thepiezoresistive fabric, each set of traces forming a corresponding sensorwith a corresponding portion of the piezoresistive fabric, wherein fourof the sets of traces are arranged to form a four-quadrant sensor withthe corresponding portions of the piezoresistive fabric; and sensorcircuitry configured to receive a sensor signal from each set of traces,each sensor signal representing pressure applied to a surface of thesensor array near the corresponding sensor, and wherein the sensorcircuitry is configured to collectively process the sensor signalsreceived from the four sets of traces to generate informationrepresentative of the pressure relative to the four-quadrant sensor in aplurality of spatial dimensions.
 2. The sensor array of claim 1, whereinthe surface of the sensor array includes a surface of a control pad thatcovers the four-quadrant sensor, and wherein the plurality of spatialdimensions include three linear dimensions and one or more rotationaldimensions relative to the surface of the control pad, two of the lineardimensions being substantially parallel with the surface of the controlpad, one of the linear dimensions being substantially perpendicular tothe surface of the control pad, and the one or more rotationaldimensions including a clockwise direction relative to the surface ofthe control pad and a counter-clockwise direction relative to thesurface of the control pad.
 3. A sensor array, comprising:piezoresistive fabric; a plurality of sets of traces adjacent a sameside of the piezoresistive fabric, each set of traces forming acorresponding sensor with a corresponding portion of the piezoresistivefabric; and sensor circuitry configured to receive a sensor signal fromeach set of traces, each sensor signal representing pressure applied toa surface of the sensor array near the corresponding sensor; wherein thepiezoresistive fabric is secured to one or more movable mechanicalstructures and the traces are on an adjacent substrate, and wherein thepiezoresistive material is configured to make contact with one or moreof the sets of traces in response to the pressure on the surface of thesensor array.
 4. The sensor array of claim 3, wherein one of the one ormore movable mechanical structures comprises a plunger configured to beactivated in response to the pressure.
 5. A sensor array, comprising:piezoresistive fabric; a plurality of sets of traces adjacent a sameside of the piezoresistive fabric, each set of traces forming acorresponding sensor with a corresponding portion of the piezoresistivefabric; and sensor circuitry configured to receive a sensor signal fromeach set of traces, wherein each sensor signal represents pressureapplied to a surface of the sensor array near the corresponding sensor,and wherein each sensor signal monotonically represents variations overtime of the pressure for the corresponding sensor.
 6. A sensor array,comprising: piezoresistive fabric; a plurality of sets of tracesadjacent a same side of the piezoresistive fabric, each set of tracesforming a corresponding sensor with a corresponding portion of thepiezoresistive fabric; and sensor circuitry configured to receive asensor signal from each set of traces, wherein each sensor signalrepresents pressure applied to a surface of the sensor array near thecorresponding sensor, and wherein each sensor signal represents acontinuous range of the pressure for the corresponding sensor.
 7. Asensor array, comprising: piezoresistive fabric; a plurality of sets oftraces adjacent a same side of the piezoresistive fabric, each set oftraces forming a corresponding sensor with a corresponding portion ofthe piezoresistive fabric; and sensor circuitry configured to receive asensor signal from each set of traces, wherein each sensor signalrepresents pressure applied to a surface of the sensor array near thecorresponding sensor, and wherein the sensor circuitry is furtherconfigured to adjust a sensitivity to the pressure for each of thesensors.
 8. A sensor array, comprising: piezoresistive fabric; aplurality of sets of traces adjacent a same side of the piezoresistivefabric, each set of traces forming a corresponding sensor with acorresponding portion of the piezoresistive fabric; and sensor circuitryconfigured to receive a sensor signal from each set of traces, whereineach sensor signal represents pressure applied to a surface of thesensor array near the corresponding sensor, and wherein the sensorcircuitry is further configured to collectively process the sensorsignals received from more than one of the sets of traces to generateinformation representative of movement of an object relative to thesurface of the sensor array.
 9. The sensor array of claim 8, wherein theinformation is representative of the movement of the object in one ormore linear dimensions.
 10. The sensor array of claim 8, wherein theinformation is representative of the movement of the object in one ormore rotational dimensions.
 11. The sensor array of claim 8, wherein theinformation is also representative of a magnitude of the pressure.
 12. Asensor array, comprising: piezoresistive fabric; a plurality of sets oftraces adjacent a same side of the piezoresistive fabric, each set oftraces forming a corresponding sensor with a corresponding portion ofthe piezoresistive fabric; and sensor circuitry configured to receive asensor signal from each set of traces, wherein each sensor signalrepresents pressure applied to a surface of the sensor array near thecorresponding sensor, and wherein the sensor circuitry is furtherconfigured to generate control information from the sensor signals, andto map the control information to one or more control destinationsrepresenting operation of one or more processes or devices.
 13. A methodfor generating control information representing pressure applied to asurface associated with a sensor array by an object, comprising:receiving a plurality of sensor signals, each sensor signal representinginteraction of a portion of piezoresistive fabric and a correspondingset of traces adjacent a same side of the piezoresistive fabricresulting from the pressure on the surface; digitizing the sensorsignals; and generating the control information from the digitizedsensor signals, the control information representing movement of theobject relative to the surface, the control information alsorepresenting a time-varying magnitude of the pressure.
 14. The method ofclaim 13, wherein generating the control information includes adjustinga sensitivity to the pressure for each of the sensor signals.
 15. Themethod of claim 13, wherein the control information is representative ofthe movement of the object in one or more linear dimensions.
 16. Themethod of claim 13, wherein the control information is representative ofthe movement of the object in one or more rotational dimensions.
 17. Themethod of claim 13, further comprising mapping the control informationto one or more control destinations representing operation of one ormore processes or devices.